#ifndef __TIMEDATE_H
#define __TIMEDATE_H

#include "stm32f10x.h"

/* RTC相关宏定义 */
#define RTC_CLOCK_SOURCE_LSE    0  // 外部32.768kHz晶振
#define RTC_CLOCK_SOURCE_LSI    1  // 内部RC振荡器
#define RTC_CLOCK_SOURCE        RTC_CLOCK_SOURCE_LSI
#define RTC_BASE_YEAR           2000

/* RTC时间结构体 */
typedef struct {
    uint16_t year;
    uint8_t month;
    uint8_t day;
    uint8_t hour;
    uint8_t minute;
    uint8_t second;
} RTC_Time_TypeDef;

/********************************** 函数声明 ***************************************/
/* RTC函数声明 */
void RTC_Configuration(void);
void RTC_SetTime(RTC_Time_TypeDef *time);
void RTC_GetTime(RTC_Time_TypeDef *time);
void RTC_Generate_Timestamp_String(char *timestamp_str);
uint32_t RTC_Time_To_Counter(RTC_Time_TypeDef *time);
void RTC_Counter_To_Time(uint32_t counter, RTC_Time_TypeDef *time);

#endif /* __TIMEDATE_H */
